/*
 * RegistroDeAfinidadeDeProfessor.java
 *
 * Created on 16/01/2013, 18:51:38
 */
package distribuicaoDeProfessores;

/**
 *
 * @author Jaime
 */
public class RegistroDeAfinidadeDeProfessor extends javax.swing.JPanel {
    
    
    public RegistroDeAfinidadeDeProfessor(ProfessorAfinidadeAtividade afinidadeProfessorAtividade, 
            AtividadesCadastradas atividades, Professores professores)
    {
        
        initComponents();
         this.professorAfinidadeAtividade = afinidadeProfessorAtividade;
         this.atividades = atividades;
         this.professores = professores;
         registros = new FrameRegistroDeAfinidade[atividades.getAtividades().size()];
         
         configuraFrames();
         configuraListaProfessores();
    }
    final void configuraFrames(){
      
      registros = new FrameRegistroDeAfinidade[atividades.getAtividades().size()];
      for(int i = 0; i < atividades.getAtividades().size(); i++){
          registros[i] = new FrameRegistroDeAfinidade();
      }
      //Configura o painel para exibir a quanitdade de frame adequadas
       painelFrames.removeAll();
       int linhas =  atividades.getAtividades().size();
       
       //painelFrames.setLayout(new java.awt.GridLayout(linhas, 1, 1, 6) );
       
       //O Frame do indice 0 corresponde a atividade de indice 0;
       
       for(int i = 0; i < atividades.getAtividades().size(); i++){
           registros[i].setTexto(i+" - "+atividades.getAtividades().get(i).getNome(), i);
           painelFrames.add(registros[i]);
       }
       painelFrames.repaint();
       painelFrames.setVisible(false);
       painelFrames.setVisible(true);
    }
   
    final void configuraListaProfessores(){
        String nomes[] = new String[professores.getProfessores().size()];
        for (int i = 0; i < professores.getProfessores().size(); i++){
            nomes[i] = professores.getProfessores().get(i).getNome();
        }
        listaProfessores.setModel(new javax.swing.DefaultComboBoxModel(nomes));
        
    }

    public ProfessorAfinidadeAtividade getAfinidadeProfessorAtividade() {
        return professorAfinidadeAtividade;
    }

    public void setAfinidadeProfessorAtividade(ProfessorAfinidadeAtividade afinidadeProfessorAtividade) {
        this.professorAfinidadeAtividade = afinidadeProfessorAtividade;
    }

    public AtividadesCadastradas getAtividades() {
        return atividades;
    }

    public void setAtividades(AtividadesCadastradas atividades) {
        this.atividades = atividades;
    }

    public Professores getProfessores() {
        return professores;
    }

    public void setProfessores(Professores professores) {
        this.professores = professores;
    }
    
    @SuppressWarnings("unchecked")
    // <editor-fold defaultstate="collapsed" desc="Generated Code">//GEN-BEGIN:initComponents
    private void initComponents() {

        jScrollPane1 = new javax.swing.JScrollPane();
        jPanel2 = new javax.swing.JPanel();
        jPanel1 = new javax.swing.JPanel();
        listaProfessores = new javax.swing.JComboBox();
        painelFrames = new javax.swing.JPanel();
        jButton1 = new javax.swing.JButton();
        jLabel1 = new javax.swing.JLabel();

        setBackground(new java.awt.Color(153, 255, 153));
        setLayout(new java.awt.BorderLayout());

        jPanel2.setBackground(new java.awt.Color(153, 255, 153));
        jPanel2.setLayout(new java.awt.BorderLayout());

        jPanel1.setBackground(new java.awt.Color(255, 153, 153));
        jPanel1.setLayout(new java.awt.BorderLayout());

        listaProfessores.setModel(new javax.swing.DefaultComboBoxModel(new String[] { "Professores" }));
        listaProfessores.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                listaProfessoresActionPerformed(evt);
            }
        });
        jPanel1.add(listaProfessores, java.awt.BorderLayout.PAGE_START);

        painelFrames.setBackground(new java.awt.Color(204, 255, 204));
        painelFrames.setBorder(javax.swing.BorderFactory.createBevelBorder(javax.swing.border.BevelBorder.LOWERED));
        painelFrames.setLayout(new javax.swing.BoxLayout(painelFrames, javax.swing.BoxLayout.Y_AXIS));
        jPanel1.add(painelFrames, java.awt.BorderLayout.CENTER);

        jPanel2.add(jPanel1, java.awt.BorderLayout.CENTER);

        jScrollPane1.setViewportView(jPanel2);

        add(jScrollPane1, java.awt.BorderLayout.CENTER);

        jButton1.setBackground(new java.awt.Color(0, 255, 0));
        jButton1.setFont(new java.awt.Font("Tahoma", 1, 18));
        jButton1.setText("ACEITAR");
        jButton1.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                jButton1ActionPerformed(evt);
            }
        });
        add(jButton1, java.awt.BorderLayout.PAGE_END);

        jLabel1.setFont(new java.awt.Font("Segoe Script", 0, 36));
        jLabel1.setText("Registro de afinidade sobre atividades");
        jLabel1.setToolTipText("");
        jLabel1.setBorder(javax.swing.BorderFactory.createBevelBorder(javax.swing.border.BevelBorder.RAISED, new java.awt.Color(204, 0, 0), new java.awt.Color(204, 153, 0), new java.awt.Color(255, 0, 0), new java.awt.Color(255, 102, 0)));
        add(jLabel1, java.awt.BorderLayout.PAGE_START);
    }// </editor-fold>//GEN-END:initComponents

    private void jButton1ActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_jButton1ActionPerformed
        // Ação do botãozão aceitar
        //Quando se clica em acietar os dados da tela são tranferidos para o objeto
        if(registros.length==0||professores.getProfessores().isEmpty()) {
            javax.swing.JOptionPane.showMessageDialog(null, "Não exitem atividades e/ou professores cadastrados!", "Erro!", javax.swing.JOptionPane.ERROR_MESSAGE);
            return;
        }
        int indice = professorAfinidadeAtividade.encontrarIndice(
                professores.getProfessores().get(
                        listaProfessores.getSelectedIndex()));
        
        
        if (indice == -1) {
                        javax.swing.JOptionPane.showMessageDialog(null, 
                                "Erro no resgate de Professores!!!", "ERRO!", 
                                        javax.swing.JOptionPane.ERROR_MESSAGE);
                        return; 
        }
        //javax.swing.JOptionPane.showMessageDialog(null, indice);
        for (int i = 0; i < registros.length; i++){
            professorAfinidadeAtividade.getProfessores().get(indice).setAfinidade(i, registros[i].afinidade.getSelectedIndex()+1);
           
            
        }
        javax.swing.JOptionPane.showMessageDialog(null,"O professor(a) " + professorAfinidadeAtividade.getProfessores().get(indice).getProfessor().getNome() + " foi atualizado(a) com sucesso!!");
        
    }//GEN-LAST:event_jButton1ActionPerformed

    private void listaProfessoresActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_listaProfessoresActionPerformed
        setarValores();
    }//GEN-LAST:event_listaProfessoresActionPerformed
    public void setarValores(){
        int indice;
        if (professores.getProfessores().isEmpty()) return;
        
        indice = professorAfinidadeAtividade.encontrarIndice(
                    professores.getProfessores().get(
                        listaProfessores.getSelectedIndex()));
        
        
        
        if (indice == -1) {
                        javax.swing.JOptionPane.showMessageDialog(null, 
                                "Erro no resgate de Professores!!!", "ERRO!", 
                                        javax.swing.JOptionPane.ERROR_MESSAGE);
                        return; 
        }
        //javax.swing.JOptionPane.showMessageDialog(null, indice);
        for (int i = 0; i < registros.length; i++){
            registros[i].afinidade.setSelectedIndex(professorAfinidadeAtividade.getProfessores().get(indice).getAfinidade(i)-1);
        }
    }
    // Variables declaration - do not modify//GEN-BEGIN:variables
    private javax.swing.JButton jButton1;
    private javax.swing.JLabel jLabel1;
    private javax.swing.JPanel jPanel1;
    private javax.swing.JPanel jPanel2;
    private javax.swing.JScrollPane jScrollPane1;
    private javax.swing.JComboBox listaProfessores;
    private javax.swing.JPanel painelFrames;
    // End of variables declaration//GEN-END:variables
    private FrameRegistroDeAfinidade registros[];
    private ProfessorAfinidadeAtividade professorAfinidadeAtividade;
    private AtividadesCadastradas atividades;
    private Professores professores;

}
